package com.heihei.combine;

import com.heihei.combine.applist.*;
import com.heihei.config.ConfigProperties;
import com.heihei.getvideowidth.GetVideoWidthStart;
import com.heihei.imgpreview.*;
import com.heihei.reduceimg.ReductImgStart;
import com.heihei.util.FileUtilF;
import com.heihei.videopreview.VideoPreviewStart;

import java.io.IOException;
import java.util.Scanner;

public class CombineImgPackage {
    public static void main(String[] args) throws IOException, InterruptedException {
        start();
    }

    public static void start() throws IOException, InterruptedException {
        while(true) {
            System.out.println("================ Start ==================");
            System.out.println("请选择功能：");
            System.out.println(">> -1. 退出");
            System.out.println(">>  0. 刷新配置");
            System.out.println(">>  1. 创建html预览（交互式）");
            System.out.println(">>  2. 创建Img预览（交互式）");
            System.out.println(">>  3. 划分图包（适用于文件夹下图片视频混杂的情况，需要输入父级文件夹作为参数）");
            System.out.println(">>  4. 整理图包（包括html、img预览生成，以及压缩； 需要输入父级文件夹作为参数）");
            System.out.println(">>  5. 分包（根据其下视频图片情况，分包）");
            System.out.println(">>  6. 整理图包（整理子目录的包含P的子目录）");
            System.out.println(">>  7. 6的后续删除操作（删除子目录的包含P的子目录）");
            System.out.println(">>  8. 视频预览图制作（每个视频，均制作对应的预览图）");
            System.out.println(">>  9. 视频预览图制作（将文件夹下所有视频文件，制作到一张预览图中）");
            System.out.println(">> 10. 读取所有图片，制作预览图（限制最大行数）");
            System.out.println(">> 11. 图片轻量化");
            System.out.println(">> 12. 收集图片到一个文件夹下");
            System.out.println(">> 13. 筛选出来 下边的单级文件夹");
            System.out.println(">> 14. 删除其下的空文件夹");
            System.out.println(">> 15. 判断目录下是否有视频");
            System.out.println(">> 16. 缩略图 生成");
            System.out.println(">> 17. 重命名缩略图，构建论坛json");
            System.out.println(">> 18. 按照视频尺寸、横竖屏分组");
            Scanner sc = FileUtilF.getSc();
            String s = sc.nextLine();
            Integer flag = null;
            try{
                flag = Integer.valueOf(s);
            } catch (Exception e) {
                System.out.println("输入有误，请重新输入");
                continue;
            }
            //开始选择功能
            switch (flag) {
                case -1:
                    System.out.println("退出");
                    return;
                case 0:
                    ConfigProperties.updateProperties();
                    break;
                case 1:
                    //创建HTML预览
                    HtmlImgPreview.start();
                    break;
                case 2:
                    //创建img预览
                    ImgConbinePreview.start();
                    break;
                case 3:
                    DivideImgPackageCombine.start();
                    break;
                case 4:
                    //图包整理
                    SettleImgPackage.settleImgPackage();
                    break;
                case 5:
                    //根据视频图片情况 分包
                    DivideImgAndVideo.start();
                    break;
                case 6:
                    SettleImgPackage.settleChildrenImgPackageContainsP(1);
                    break;
                case 7:
                    SettleImgPackage.settleChildrenImgPackageContainsP(2);
                    break;
                case 8:
                    VideoPreviewStart.start();
                    break;
                case 9:
                    VideoPreview.startMergeVideoPreviewStart();
                    break;
                case 10:
                    ImgDividePreviewStart.start();
                    break;
                case 11:
                    ReductImgStart.start();
                    break;
                case 12:
                    CollectImg.start();
                    break;
                case 13:
                    DirLevel.start();
                    break;
                case 14:
                    DirLevel.delEmptyDir();
                    break;
                case 15:
                    DirLevel.hasVideo();
                    break;
                case 16:
                    ThumbImg.start();
                    break;
                case 17:
                    ThumbImg.buildJsonByThumbImg();
                    break;
                case 18:
                    GetVideoWidthStart.start();
                    break;
                default:
                    System.out.println("暂不支持所选功能，请重新选择");
            }
        }
    }
}